package cn.imvc.app.models;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.web.util.matcher.RequestMatcher;

import cn.imvc.app.entities.GoodsSpec;
import cn.imvc.app.entities.GoodsSpecValue;
import cn.imvc.data.domain.ViewRequest;

public interface GoodsSpecValueModel {
	LinkedHashMap<RequestMatcher, Collection<ConfigAttribute>> getRequestMap();
	
	Page<GoodsSpecValue> find(ViewRequest viewRequest);
	
	GoodsSpecValue get(int id);

	GoodsSpecValue save(GoodsSpecValue goodsSpecValue);
	
	GoodsSpecValue update(GoodsSpecValue goodsSpecValue);

	void delete(int id);

	void deleteBatch(int[] ids);
	
	void Descartes(List<GoodsSpec> dimvalue, List<List<GoodsSpecValue>> result, int layer, List<GoodsSpecValue> goodsSpecValues);
	
	List<GoodsSpecValue> findBygoodsSpec(GoodsSpec goodsSpec);
	
	void deleteByGoodsSpec(GoodsSpec goodsSpec);
}
